package cn.vire.electric.simulation.enums;

import cn.vire.electric.simulation.common.exception.BusinessException;
import lombok.Getter;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

/**
 * 模型类型枚举
 */
@Getter
public enum MetadataModuleTypeEnum {
    PLAT(((byte) 1), "平台模型") {
    },
    EQUIP(((byte) 2), "设备模型") {
    },
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

    MetadataModuleTypeEnum(byte type, String desc) {
        this.type = type;
        this.desc = desc;
    }

    /**
     *
     */
    private byte type;
    private String desc;

    public static MetadataModuleTypeEnum getEnum(Byte type) {
        if (type != null) {
            for (MetadataModuleTypeEnum value : MetadataModuleTypeEnum.values()) {
                if (value.type == type) {
                    return value;
                }
            }
        }
        throw new BusinessException("模型类型有误");
    }

    @Component
    public static class EnumServiceInjector {

        @PostConstruct
        public void postConstruct() {
            for (MetadataModuleTypeEnum topoTypeEnum : MetadataModuleTypeEnum.values()) {
            }
        }
    }
}
